//attempts to show a mob a message, based on their status as a mob
int MSG_SIGHT	2
int MSG_HEAR	4
int DEFAULT_MSG_CONTROL	"mainwindow.ou"
mob/verb/nsay(t as text)
	world<<nervous_say(t)

mob/proc
	nervous_say(text)
		if(!text) return
		var/list/cont = text2list(text, " ")

		if(cont.len <= 1)
			return text
		for(var/v = 1, v <= cont.len, v++)
			if(prob(40))
				cont.Swap(v, rand(1,cont.len))
		.=list2text(cont, " ")
		return


	show_msg(text, type=MSG_HEAR, control=DEFAULT_MSG_CONTROL)
		if(!client || !src) return

		//if they are dead or blacked out, or if type is hear & their stat is flagged as DEAF
		if((src.stat & (DEAD | BLACKOUT)) || ((type&MSG_HEAR) && src.stat&DEAF))
			if(prob(40))
				src<<"<i>you can almost hear something....</i>"
			return

		//if its a sight type of message, and their stat is flagged as either stunned or blind,
		if((type & MSG_SIGHT)&&(src.stat & (BLIND | STUNNED)))
			return

		src << output(text, control)
